Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Perform single copy + pointer select instead of double write for small types #29

Merged
merged 2 commits into from
Dec 12, 2023

Conversation

Voultapher
Copy link
Owner

@Voultapher Voultapher commented Nov 19, 2023

A previous optimization is no longer deemed worth it, new test results and understanding suggest that a single call to ptr::copy_nonoverlapping per element is more efficient for large input that don't fit into the last level cache. As well as for types like f128.

rustc 1.76.0-nightly (4cb3beec8 2023-11-18)

Zen 3 results

image

image

image

Firestorm results:

image

image

image

Icestorm results, honestly those look quite wonky, not sure if they should be trusted

image

image

image

…l types

A previous optimization is no longer deemed worth it, new test results
and understanding suggest that a single call to ptr::copy_nonoverlapping
per element is more efficient for large input that don't fit into the
last level cache. As well as for types like f128.
@Voultapher Voultapher requested a review from orlp November 21, 2023 20:29
@Voultapher Voultapher merged commit c5f3d79 into main Dec 12, 2023
3 checks passed
@Voultapher Voultapher deleted the single-write-partition branch December 12, 2023 16:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants